#ifndef MUCUSTOMSHORTCUTS_H
#define MUCUSTOMSHORTCUTS_H

#include "customshortcut.h"
#include <vector>
#include <QAction>
#include <QShortcut>

class MuCustomShortcuts
{

	public:

		typedef std::vector<CustomShortcut*> Container;
		typedef Container::const_iterator const_iterator;
		typedef Container::iterator iterator;
		typedef Container::size_type size_type;

	public:

		MuCustomShortcuts();
		~MuCustomShortcuts();

//	//application control
//	CustomShortcut *exitApplication;
//	CustomShortcut *saveKnowledgeTree;

//	//knowledge tree edit
//	CustomShortcut *insertKnowledgeTreeRow;
//	CustomShortcut *removeKnowledgeTreeRow;
//	CustomShortcut *insertKnowledgeTreeLeaf;
//	CustomShortcut *convertSelectionToCards;
//	CustomShortcut *pauseKnowledgeBranch;
//	CustomShortcut *unpauseKnowledgeBranch;

		//const_iterator begin() const;
		//const_iterator end() const;


		CustomShortcut* operator[](size_type index) const;
		size_type size() const;

		void add(QAction*, const QString& tage ="");
		void add(QShortcut*, const QString& tag ="");

//	void bind(CustomShortcut*, QAction*);
//	void bind(CustomShortcut *, QShortcut *);

		void setSequence(const QString& tag, const QKeySequence& sequence);

		void saveToSettings();
		void loadFromSettings();

		void sort();

	private:

		Container _shortcuts;

};

#endif // MUCUSTOMSHORTCUTS_H
